Abertura de Dossel

Author

Edson Silva-Júnior

Pacotes

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.2     ✔ readr     2.1.4
✔ forcats   1.0.0     ✔ stringr   1.5.0
✔ ggplot2   3.4.4     ✔ tibble    3.2.1
✔ lubridate 1.9.2     ✔ tidyr     1.3.0
✔ purrr     1.0.1     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidyterra)

Attaching package: 'tidyterra'

The following object is masked from 'package:stats':

    filter
library(terra)
terra 1.7.71

Attaching package: 'terra'

The following object is masked from 'package:tidyr':

    extract
library(raster)
Carregando pacotes exigidos: sp

Attaching package: 'raster'

The following object is masked from 'package:tidyterra':

    select

The following object is masked from 'package:dplyr':

    select
library(LAI)

Dados

Importando

imagem1 <- terra::rast("./cropped-images/imagem1.png")
Warning: [rast] unknown extent
imagem2 <- terra::rast("./cropped-images/imagem2.png")
Warning: [rast] unknown extent
imagem3 <- terra::rast("./cropped-images/imagem3.png")
Warning: [rast] unknown extent
imagem4 <- terra::rast("./cropped-images/imagem4.png")
Warning: [rast] unknown extent

Visualizando

ggplot() +
  tidyterra::geom_spatraster_rgb(data = imagem1) +
  scale_x_continuous(expand = c(0, 0)) +
  scale_y_continuous(expand = c(0, 0))
<SpatRaster> resampled to 501264 cells for plotting

ggplot() +
  tidyterra::geom_spatraster_rgb(data = imagem2) +
  scale_x_continuous(expand = c(0, 0)) +
  scale_y_continuous(expand = c(0, 0))
<SpatRaster> resampled to 501264 cells for plotting

ggplot() +
  tidyterra::geom_spatraster_rgb(data = imagem3) +
  scale_x_continuous(expand = c(0, 0)) +
  scale_y_continuous(expand = c(0, 0))
<SpatRaster> resampled to 501264 cells for plotting

ggplot() +
  tidyterra::geom_spatraster_rgb(data = imagem4) +
  scale_x_continuous(expand = c(0, 0)) +
  scale_y_continuous(expand = c(0, 0))
<SpatRaster> resampled to 501264 cells for plotting

Binarizando a imagem

Binarizando

LAI::unimodal_threshold(imagem1 %>% raster::raster()) %>% 
  plot(useRaster = TRUE)

LAI::unimodal_threshold(imagem2 %>% raster::raster()) %>% 
  plot(useRaster = TRUE)

LAI::unimodal_threshold(imagem3 %>% raster::raster()) %>% 
  plot(useRaster = TRUE)

LAI::unimodal_threshold(imagem4 %>% raster::raster()) %>% 
  plot(useRaster = TRUE)

Índices

# Imagem 1

n1 <- LAI::unimodal_threshold(imagem1 %>% raster::raster()) %>% 
  as.data.frame(xy = TRUE) %>% 
  na.omit() %>% 
  nrow()

n0_1 <- LAI::unimodal_threshold(imagem1 %>% raster::raster()) %>% 
  as.data.frame(xy = TRUE) %>% 
  na.omit() %>% 
  dplyr::filter(imagem1_1 == 0) %>% 
  nrow()

n0_1 / n1
[1] 0.7269575
# Imagem 2

n2 <- LAI::unimodal_threshold(imagem2 %>% raster::raster()) %>% 
  as.data.frame(xy = TRUE) %>% 
  na.omit() %>% 
  nrow()

n0_2 <- LAI::unimodal_threshold(imagem2 %>% raster::raster()) %>% 
  as.data.frame(xy = TRUE) %>% 
  na.omit() %>% 
  dplyr::filter(imagem2_1 == 0) %>% 
  nrow()

n0_2 / n2
[1] 0.7507415
# Imagem 3

n3 <- LAI::unimodal_threshold(imagem3 %>% raster::raster()) %>% 
  as.data.frame(xy = TRUE) %>% 
  na.omit() %>% 
  nrow()

n0_3 <- LAI::unimodal_threshold(imagem3 %>% raster::raster()) %>% 
  as.data.frame(xy = TRUE) %>% 
  na.omit() %>% 
  dplyr::filter(imagem3_1 == 0) %>% 
  nrow()

n0_3 / n3
[1] 0.5000454
# Imagem 1

n4 <- LAI::unimodal_threshold(imagem4 %>% raster::raster()) %>% 
  as.data.frame(xy = TRUE) %>% 
  na.omit() %>% 
  nrow()

n0_4 <- LAI::unimodal_threshold(imagem4 %>% raster::raster()) %>% 
  as.data.frame(xy = TRUE) %>% 
  na.omit() %>% 
  dplyr::filter(imagem4_1 == 0) %>% 
  nrow()

n0_4 / n4
[1] 0.4252339